﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevMedia.Net.Exemplo.Model.Entities;

namespace DevMedia.Net.Exemplo.Model.Repository
{
	public static class UsuarioRepository
	{
		private static long ultimoId = 0;
		private static List<Usuario> usuariosCadastrados = new List<Usuario>();

		public static void Inserir( Usuario usuario )
		{
			ultimoId++;
			usuario.Id = ultimoId;
			usuariosCadastrados.Add( usuario );
		}

		public static void Atualizar(Usuario usuario)
		{
			Deletar( usuario.Id );
			usuariosCadastrados.Add( usuario );
		}

		public static void Deletar( long idUsuario )
		{
			int idxUsuarioLocalizado = usuariosCadastrados.FindIndex( x => x.Id.Equals( idUsuario ) );
			usuariosCadastrados.RemoveAt( idxUsuarioLocalizado );
		}

		public static List<Usuario> GetUsuariosCadastrados()
		{
			return usuariosCadastrados;
		}

		public static Usuario GetUsuarioById( long idUsuario )
		{
			return usuariosCadastrados.Find( u => u.Id == idUsuario );
		}

	}
}
